Communication device, communication method, and computer program product

ABSTRACT

A communication device transmits a plurality of measurement packets to another communication device while successively varying a transmitting interval. After the plurality of measurement packets have been transmitted, the communication device determines a location of a usable bandwidth in relation to a first bandwidth range that is a range within which bandwidths are measured. The communication device resets the first bandwidth range to a second bandwidth range that is a range within which the bandwidths are measured and in which at least one of an upper limit and a lower limit is different from the corresponding limit in the first bandwidth range in accordance with the determination. The communication device selects a bandwidth that will be used when the measurement packets are transmitted. The communication device transmits the measurement packets to the other communication device using the bandwidth that has been selected.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to Japanese Patent Application No.2010-41570, filed Feb. 26, 2010, the disclosure of which is herebyincorporated by reference in its entirety.

BACKGROUND

The present disclosure relates to a communication device, acommunication method, and a computer program product for a communicationdevice that measure a bandwidth that can be used during communication.

In a case where a communication device transmits data through a networksuch as the Internet or the like, it is necessary for the communicationdevice to transmit the data at a transmission rate that is suited to thecapacity of the transmission channel that can be used. Hereinafter, thetransmission channel capacity and the transmission rate will be calledthe bandwidth. The capacity of the transmission channel that can be usedis called the usable bandwidth. The usable bandwidth varies according tocircumstances such as the region, the provider, the time of day, and thelike. It is therefore desirable for the communication device to selectthe bandwidth for transmitting data by matching the varying usablebandwidth.

A method for specifying the usable bandwidth is known. In this method,the communication device includes, in packets, time information forcomputing a packet transmission interval. The communication devicesuccessively transmits a plurality of packets while varying thebandwidth at the time of transmission by incrementally changing thetransmission interval. Another communication device receives the packetsand stores the packet receiving intervals. Thereafter, the differencesbetween the stored receiving intervals and the transmission intervalsthat were computed based on the time information within the packets arecomputed. The usable bandwidth is specified based on a trend of changesin the computed plurality of differences.

The specifying of the usable bandwidth is performed for each one of aplurality of specified ranges of bandwidths. Hereinafter, the range ofbandwidths is called the bandwidth range. The bandwidths that are usedfor transmitting the packets are selected from within the specifiedbandwidth range, starting with the widest bandwidth. The packets aretransmitted in order using the selected bandwidth, and a determinationis made as to whether a usable bandwidth exists within the specifiedbandwidth range. In a case where a usable bandwidth does not existwithin the specified bandwidth range, the bandwidth range is extended.In a case where a usable bandwidth exists at a narrower bandwidth thanthe bandwidths within the specified bandwidth range, the bandwidth rangeis extended in the direction of the narrower bandwidths. In a case wherea usable bandwidth exists at a wider bandwidth than the bandwidthswithin the specified bandwidth range, the bandwidth range is extended inthe direction of the wider bandwidths. The determination as to whether ausable bandwidth exists within the extended bandwidth range is maderepeatedly.

SUMMARY

In the method that is described above, the bandwidths that are used fortransmitting the packets are selected from among the bandwidths in thespecified bandwidth range after the range has been extended, startingwith the widest bandwidth, irrespective of the position of the usablebandwidth in relation to the bandwidth range before the range isextended. The packets are transmitted in order using the selectedbandwidths. Because priority is given to using the widest bandwidth,there is a strong possibility that a packet will be transmitted using abandwidth that is wider than the usable bandwidth. In a case where apacket is transmitted using a bandwidth that is wider than the usablebandwidth, a problem arises in that the communication devices cannottransmit and receive the packets in a stable state. Furthermore, in aease where the usable bandwidth is specified based on the extendedbandwidth range when, for example, the usable bandwidth was narrowerthan the bandwidths in the bandwidth range prior to the extension,considerable time is required in order to specify the usable bandwidth,creating another problem in that the specifying process becomes lessefficient.

Various exemplary embodiments of the broad principles derived hereinprovide a communication device, a communication method, and a computerprogram product for a communication device that are capable ofspecifying the usable bandwidth in a stable and efficient manner.

Exemplary embodiments provide a communication device that can beconnected to a network includes a first transmitting portion thattransmits a plurality of measurement packets to another communicationdevice while successively varying a transmitting interval, a firstdetermining portion that, in a case where the plurality of measurementpackets have been transmitted by the first transmitting portion,determines a location of a usable bandwidth in relation to a firstbandwidth range, based on a result packet that is transmitted from theother communication device, the first bandwidth range being a rangewithin which bandwidths are measured, the usable bandwidth being one ofthe bandwidths that can be used in the network, and the result packetcontaining information that pertains to a relationship between thetransmitting interval and a receiving interval at which the plurality ofmeasurement packets are received by the other communication device, arange setting portion that resets the first bandwidth range to a secondbandwidth range in accordance with a determination that has been made bythe first determining portion, the second bandwidth range being a rangewithin which the bandwidths are measured and in which at least one of anupper limit and a lower limit is different from the corresponding limitin the first bandwidth range, a selecting portion that, in order todetermine whether the usable bandwidth is located within the secondbandwidth range that has been set by the range setting portion, selects,from among a plurality of bandwidths that have been selected from withinthe second bandwidth range and based on the setting by the range settingportion, a bandwidth that will be used when the measurement packets aretransmitted to the other communication device, and a second transmittingportion that transmits the measurement packets to the othercommunication device using the bandwidth that has been selected by theselecting portion.

Exemplary embodiments also provide a communication method includes thesteps of transmitting a plurality of measurement packets to anothercommunication device that is connected to a network while successivelyvarying a transmitting interval, determining, in a case where theplurality of measurement packets have been transmitted, a location of ausable bandwidth in relation to a first bandwidth range, based on aresult packet that is transmitted from the other communication device,the first bandwidth range being a range within which bandwidths aremeasured, the usable bandwidth being one of the bandwidths that can beused in the network, and the result packet containing information thatpertains to a relationship between the transmitting interval and areceiving interval at which the measurement packets are received by theother communication device, resetting the first bandwidth range to asecond bandwidth range in accordance with the determining of thelocation of the usable bandwidth in relation to the first bandwidthrange, the second bandwidth range being a range within which thebandwidths are measured and in which at least one of an upper limit anda lower limit is different from the corresponding limit in the firstbandwidth range, selecting, from among a plurality of bandwidths thathave been selected from within the second bandwidth range and based onthe setting of the second bandwidth range, a bandwidth that will be usedwhen the measurement packets are transmitted to the other communicationdevice, in order to determine whether the usable bandwidth is locatedwithin the second bandwidth range that has been set; and transmittingthe measurement packets to the other communication device using theselected bandwidth.

Exemplary embodiments further provide a computer program product storedon a non-transitory computer-readable medium includes instructions forcausing a computer of a communication device that is connected to anetwork to carry out communication with another communication device toperform the steps of transmitting a plurality of measurement packets toanother communication device (1) that is connected to a network (8)while successively varying a transmitting interval, determining, in acase where the plurality of measurement packets have been transmitted,the location of a usable bandwidth in relation to a first bandwidthrange, based on a result packet that is transmitted from the othercommunication device, the first bandwidth range being a range withinwhich bandwidths are measured, the usable bandwidth being one of thebandwidths that can be used in the network, and the result packetcontaining information that pertains to a relationship between thetransmitting interval and a receiving interval at which the measurementpackets are received by the other communication device, resetting thefirst bandwidth range to a second bandwidth range in accordance with thedetermining of the location of the usable bandwidth in relation to thefirst bandwidth range, the second bandwidth range being a range withinwhich the bandwidths are measured and in which at least one of an upperlimit and a lower limit is different from the corresponding limit in thefirst bandwidth range, selecting, from among a plurality of bandwidthsthat have been selected from within the second bandwidth range and basedon the setting of the second bandwidth range, a bandwidth that will beused when the measurement packets are transmitted to the othercommunication device, in order to determine whether the usable bandwidthis located within the second bandwidth range that has been set, andtransmitting the measurement packets to the other communication deviceusing the selected bandwidth.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments will be described below in detail with referenceto the accompanying drawings in which:

FIG. 1 is a diagram that shows an electrical configuration of acommunication device 1 and a configuration of a bandwidth measurementsystem 100;

FIG. 2 is a diagram that shows measurement of a bandwidth within abandwidth range;

FIG. 3 is a diagram that shows measurement of a bandwidth within abandwidth range;

FIG. 4 is a diagram that shows measurement of a bandwidth within abandwidth range;

FIG. 5 is a flowchart of main processing;

FIG. 6 is a flowchart that shows narrow bandwidth measurementprocessing;

FIG. 7 is a flowchart that shows wide bandwidth measurement processing;

FIG. 8 is a flowchart that shows binary search processing;

FIG. 9 is a flowchart that shows first transmission processing;

FIG. 10 is a flowchart that shows second transmission processing;

FIG. 11 is a flowchart that shows bandwidth measurement processing;

FIG. 12 is a flowchart that shows the bandwidth measurement processing,continuing from FIG. 11;

FIG. 13 is a flowchart that shows endpoint determination processing;

FIG. 14 is a flowchart that shows receiving processing;

FIG. 15 is a flowchart that shows bandwidth measurement processing; and

FIG. 16 is a flowchart that shows intra-bandwidth measurementprocessing.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

Hereinafter, a communication device 1 that is an embodiment that makestangible a communication device of the present disclosure and abandwidth measurement system 100 that is provided with a plurality ofthe communication devices 1 will be explained with reference to thedrawings. Note that the referenced drawings are used for explaining thetechnological characteristics that are utilized by the presentdisclosure. Device configurations, flowcharts of various types ofprocessing, and the like that are shown in the drawings are merelyexplanatory examples and do not purport to limit the present disclosureonly to those examples.

The bandwidth measurement system 100 will be explained. As shown in FIG.1, the bandwidth measurement system 100 is provided with at least two ofthe communication devices 1. One of the communication devices 1 isconnected to one of the other communication devices 1 through a network8. The communication devices 1 perform communication of various types ofdata between one another.

The bandwidth measurement system 100 in the present embodiment is avideo conferencing system by which users in a plurality of locationsconduct video conferences. The communication devices 1 share video andaudio for the plurality of locations by transmitting and receiving imagedata and audio data to and from one another. The communication devices 1are capable of carrying out data communication through the network 8.Specifically, the communication devices 1 may be video conferencingterminals that are placed in each of the locations in order to conductthe video conferences, and the communication devices 1 may also bepersonal computers that various types of information processing.

In the bandwidth measurement system 100, each of the communicationdevices 1 forms the image data and the audio data into packets andtransmits the packets. At the same time, each of the communicationdevices 1 measures the bandwidth between itself and each of the othercommunication devices 1 and specifies the usable bandwidth. The usablebandwidth is the maximum transmission rate at which the communicationdevice 1 on the receiving side is able to receive the data at atransmission rate that is nearly equal to the transmission rate at whichthe communication device 1 on the transmitting side transmits the data.If the packets are transmitted at a transmission rate that exceeds theusable bandwidth, packet losses, communication delays, and the like willoccur. On the other hand, if the transmission rate is too low, theusable bandwidth will not be fully utilized, and efficiency will bepoor. Therefore, the communication device 1 controls the transmissionrate (the bandwidth) that is used such that it matches the specifiedusable bandwidth. Note that bandwidth will be expressed in units of bitsper second (bps) in order to compare the bandwidth with the transmissionrate between the communication devices 1.

An electrical configuration of the communication device 1 will beexplained. As shown in FIG. 1, the communication device 1 is providedwith a CPU 10 that performs control of the communication device 1. A ROM11, a RAM 12, a hard disk drive (HDD) 13, and an input/output interface19 are connected to the CPU 10 through a bus 18.

The ROM 11 stores a program for operating the communication device 1, aswell as an initial value and the like. The RAM 12 temporarily storesvarious types of information that are used by a control program. The HDD13 is a non-volatile storage device that stores various types ofinformation such as the control program and the like. A storage devicesuch as an EEPROM, a memory card, or the like may also be used insteadof the HDD 13.

An audio input processing portion 21, an audio output processing portion22, a video input processing portion 23, a video output processingportion 24, an operation portion 25, and an external communicationinterface 26 are connected to the input/output interface 19. The audioinput processing portion 21 processes audio data that are output from amicrophone 31. The audio output processing portion 22 controls theoperation of a speaker 32. The video input processing portion 23processes video data that are output from a camera 33 that capturesvideo images. The video output processing portion 24 controls theoperation of a display device 34 that displays the video images. Theoperation portion 25 is used by a user to input various types ofcommands to the communication device 1. The operation portion 25 mayalso be connected to the input/output interface 19 from outside thecommunication device 1. The external communication interface 26 connectsthe communication device 1 to the network 8.

Next, a simple overview of the bandwidth measurement method that is usedby the bandwidth measurement system 100 in the present embodiment willbe explained. The bandwidth measurement method that is used by thebandwidth measurement system 100 is a known method.

The bandwidth measurement method will be explained. In the bandwidthmeasurement system 100, the communication device 1 that transmits thedata packetizes the data into a plurality of measurement packets.Hereinafter, the communication device 1 that transmits the measurementpackets will be called the transmitting device. The transmitting devicesuccessively transmits the plurality of measurement packets to anotherof the communication devices 1 through the network 8. Hereinafter, theother communication device 1 will be called the receiving device. If thebandwidth (bps) that is used for transmitting the measurement packets isnot greater than the usable bandwidth (bps), the flow of the measurementpackets will not be impeded. In this case, the interval at which themeasurement packets that are transmitted by the transmitting device arereceived by the receiving device is ideally the same as the interval atwhich the measurement packets are transmitted. Hereinafter, the intervalat which the measurement packets are transmitted will be called thetransmitting interval. The interval at which the measurement packets arereceived will be called the receiving interval. On the other hand, in acase where the bandwidth (bps) that is used for transmitting themeasurement packets is greater than the usable bandwidth (bps), the flowof the measurement packets will be impeded, and the receiving intervalwill become longer than the transmitting interval.

As the transmitting device transmits the plurality of measurementpackets, it incrementally lengthens the transmitting interval. Thebandwidth that is used for transmitting the measurement packets isdetermined by the formulaBandwidth(bps)=Measurement packet size(bits)/Transmitting interval(s).

When the plurality of measurement packets are transmitted as thetransmitting interval is incrementally lengthened, the receivinginterval will become longer than the transmitting interval when thebandwidth that is used becomes greater than the usable bandwidth.However, if the transmitting interval is lengthened and the bandwidththat is used for transmitting the measurement packets is not greaterthan the usable bandwidth, the receiving interval and the transmittinginterval will be the same. Accordingly, the communication device 1 canspecify as the usable bandwidth the transmission rate at the point whenthe relationship between the receiving interval and the transmittinginterval changes.

Note that in the present embodiment, the communication device 1identifies the point when the relationship between the receivinginterval and the transmitting interval changes by computing the ratio ofthe transmitting interval to the receiving interval. In a state in whichthe bandwidth that is used for transmitting the measurement packets isnot greater than the usable bandwidth and the receiving interval is notlonger than the transmitting interval, the ratio of the transmittinginterval to the receiving interval is equal to 1. Note that in somecases, the transmitting interval and the receiving interval will notactually be perfectly equal. In the present embodiment, in a case wherethe ratio of the transmitting interval to the receiving interval iswithin a specified range that includes the value 1, the communicationdevice 1 treats the ratio as being equal to 1. If the bandwidth that isused for transmitting the measurement packets is greater than the usablebandwidth, the ratio of the transmitting interval to the receivinginterval is less than 1. In the present embodiment, in a case where theratio is less than the specified range, the ratio is treated as beingless than 1. The communication device 1 specifies the usable bandwidthby determining whether the ratio is equal to 1 or less than 1. Note thatthe method of specifying the usable bandwidth in the present disclosureis not limited to the method that has been described here. Thecommunication device 1 may also specify the usable bandwidth bycomputing the difference between the receiving interval and thetransmitting interval.

The measurement procedure will be explained. In the bandwidthmeasurement system 100, broadly speaking, the bandwidth is measured, andthe usable bandwidth is specified, by the step that is described below.

1. Set a bandwidth range.

The communication device 1 is able to measure the bandwidth efficientlyand specify the usable bandwidth by restricting the bandwidth rangewithin which it is anticipated that the usable bandwidth can bespecified.

2. Transmit and receive the plurality of measurement packets inaccordance with the bandwidth range.

First, conditions for transmitting the plurality of measurement packetsare set. The transmission conditions include the number of measurementpackets, the size of each of the measurement packets, and thetransmitting interval for the measurement packets. The transmittinginterval is set such that it is lengthened incrementally. Therefore, thebandwidths within the bandwidth range are selected in order from the endof the bandwidth range where the transmission rate is the fastest to theend of the bandwidth range where the transmission rate is the slowest.Hereinafter, the end where the transmission rate is the fastest iscalled the wide bandwidth side. The end where the transmission rate isthe slowest is called the narrow bandwidth side. The selected bandwidthis used for transmitting the measurement packets. The measurementpackets are successively transmitted from the transmitting device to thereceiving device in accordance with the transmission conditions thathave been set.

3. Specify the usable bandwidth based on the ratio of the transmittinginterval to the receiving interval.

The plurality of measurement packets that are transmitted from thetransmitting device are received by the receiving device. Afterreceiving the plurality of measurement packets, the receiving devicecomputes the receiving intervals based on the times at which themeasurement packets were actually received. The ratios of thetransmitting intervals to the receiving intervals are computed from thetransmitting intervals that are contained in the measurement packets andthe receiving intervals that have been computed. The point when thevalue of the ratio of the transmitting interval to the receivinginterval changes is thus detected. The transmission rate at the detectedpoint in time is computed based on the measurement packet size and isthen specified as the usable bandwidth. In a case where the point whenthe value of the ratio of the transmitting interval to the receivinginterval changes is not detected, either the usable bandwidth is to thewide bandwidth side from the bandwidth range or the usable bandwidth isto the narrow bandwidth side from the bandwidth range. Information thatpertains to the usable bandwidth is stored in a result packet. Theresult packet is transmitted from the receiving device to thetransmitting device. The result packet is received by the transmittingdevice.

4. Reset the bandwidth range, return to step 2 above.

In the transmitting device, the bandwidth range is reset based on theinformation that is contained in the received result packet. Thebandwidths are then measured again based on the reset bandwidth range.For example, in a case where information to the effect that the usablebandwidth is within the bandwidth range is contained in the resultpacket, the bandwidth range is reduced to a narrower range that containsthe usable bandwidth. The bandwidth measurement is then repeated basedon the bandwidth range that has been reset. In a case where a bandwidthis selected from within the bandwidth range that has been reset, abandwidth with a higher resolution is selected. The usable bandwidth cantherefore be specified accurately in a short time. To take anotherexample, in a case where information to the effect that the usablebandwidth is to the narrow bandwidth side from the bandwidth range iscontained in the result packet, the bandwidth range is extended in thedirection of the narrower bandwidths. In a case where information to theeffect that the usable bandwidth is to the wide bandwidth side from thebandwidth range is contained in the result packet, the bandwidth rangeis extended in the direction of the wider bandwidths. The bandwidths arethen measured based on the bandwidth range that has been reset. Thusrepeated attempts are made to specify the usable bandwidth.

In the present embodiment, the method for measuring the bandwidth withinthe bandwidth range that has been reset is determined according to theposition of the usable bandwidth in relation to the bandwidth rangebefore the bandwidth range is reset. Specifically, the bandwidth withinthe bandwidth range that has been reset is measured, and the usablebandwidth is specified, based on measurement methods that differaccording to whether 1) the usable bandwidth is to the narrow bandwidthside from the bandwidth range before the bandwidth range is reset, 2)the usable bandwidth is to the wide bandwidth side from the bandwidthrange before the bandwidth range is reset, or 3) the usable bandwidth iswithin the bandwidth range before the bandwidth range is reset. Thus themeasurement that is based on the bandwidth range that has been reset isperformed stably and in a short time. Hereinafter, the respectivemeasurement methods will be explained.

The bandwidth measurement methods that are based on the bandwidth rangethat has been reset will be explained with reference to FIGS. 2 to 4.The bandwidth measurement method that is used in a case where 1) theusable bandwidth is to the narrow bandwidth side from the bandwidthrange before the bandwidth range is reset will be explained withreference to FIG. 2. The transmitting device first sets a bandwidthrange 41 and measures the bandwidths. A usable bandwidth 51 is locatedto the narrow bandwidth side from the bandwidth range 41. A specifiednumber of bandwidths are selected within the bandwidth range 41. Themeasurement packets are transmitted using the selected bandwidths inorder from the wide bandwidth side toward the narrow bandwidth side(arrow 47). After all of the measurement packets have been transmittedfrom the transmitting device, a determination is made in the receivingdevice as to whether the usable bandwidth 51 is located to the narrowbandwidth side from the bandwidth range 41. The determination result isstored in the result packet. The result packet is transmitted from thereceiving device to the transmitting device. A determination is made inthe transmitting device as to whether the usable bandwidth 51 is locatedto the narrow bandwidth side from the bandwidth range 41.

The transmitting device resets the bandwidth range. Because the usablebandwidth 51 is located to the narrow bandwidth side from the bandwidthrange 41, the bandwidth range 41 is extended in the direction of thenarrower bandwidths, and a bandwidth 42 is obtained. The transmittingdevice sets the conditions for transmitting the measurement packets formeasuring the bandwidths within the bandwidth range 42. Unlike when thebandwidths were measured based on the bandwidth range 41, thetransmitting intervals are set such that they become incrementallyshorter. A specified number of bandwidths are selected within thebandwidth range 42. The selected bandwidths are selected in order fromthe narrow bandwidth side to the wide bandwidth side. The measurementpackets are transmitted one at a time using the selected bandwidths inorder (arrow 50). The receiving device receives the measurement packets.The receiving device computes the ratio of the transmitting interval tothe receiving interval based on the transmitting interval and thereceiving interval. The computation result is stored in the resultpacket. The result packet is transmitted from the receiving device tothe transmitting device. In the transmitting device, a determination ismade, based on the computation result that is contained in the resultpacket, as to whether the bandwidth that was used for transmitting themeasurement packets is the usable bandwidth. In a case where it isdetermined that the bandwidth that was used for transmitting is not theusable bandwidth, the next measurement packet is transmitted using thenext bandwidth in the wide bandwidth direction.

As shown in FIG. 2, the measurement packet is transmitted using abandwidth 52. Because the bandwidth 52 is to the narrow bandwidth sidefrom the usable bandwidth 51, the ratio of the transmitting interval tothe receiving interval that is computed in the receiving device is 1.The computation result is stored in the result packet and is transmittedfrom the receiving device to the transmitting device. Next, themeasurement packet is transmitted using a bandwidth 53. Because thebandwidth 53 is to the narrow bandwidth side from the usable bandwidth51, the computed ratio of the transmitting interval to the receivinginterval becomes 1. The computation result is stored in the resultpacket and is transmitted from the receiving device to the transmittingdevice. Next, the measurement packet is transmitted using a bandwidth54. Because the bandwidth 54 is to the wide bandwidth side from theusable bandwidth 51, the computed ratio of the transmitting interval tothe receiving interval becomes less than 1. The computation result isstored in the result packet and is transmitted from the receiving deviceto the transmitting device. The computation result changes between thecase where the bandwidth 53 was used and the case where the bandwidth 54was used. The transmitting device specifies the bandwidth 53 as theusable bandwidth.

In a case where the measurement packet is transmitted using a bandwidththat is to the wide bandwidth side from the usable bandwidth 51, themeasurement packet is transmitted over the network 8 in an unstablestate. Therefore, cases will occur in which the receiving device isunable to receive the measurement packets in a stable manner, and thereceiving interval becomes unstable. In these sorts of cases, thetransmitting device cannot specify the usable bandwidth 51 accurately.In the present embodiment, this problem is addressed by first selectingthe bandwidth 52 that is the farthest to the narrow bandwidth sidewithin the bandwidth range 42 that has been reset, and by using thebandwidth 52 as the bandwidth for transmitting the measurement packet.Furthermore, the bandwidths 52, 53, and 54 within the bandwidth range 42that has been reset are used in order from the narrow bandwidth side tothe wide bandwidth side. Priority is given to transmitting themeasurement packets using the bandwidths on the narrow bandwidth side.It is thus possible to reliably prevent the transmitting device fromtransmitting the measurement packets using a bandwidth that is to thewide bandwidth side from the usable bandwidth 51. The receiving deviceis therefore able to receive the measurement packets in a stable manner.The transmitting device is thus able to specify the usable bandwidth 51accurately. Furthermore, because the bandwidths are used in order fromthe narrow bandwidth side to the wide bandwidth side, the bandwidthswithin the bandwidth range 42 can be selected without any of thebandwidths being missed. The transmitting device is thus able toreliably specify the usable bandwidth 51.

The bandwidth measurement method that is used in a case where 2) theusable bandwidth is to the wide bandwidth side from the bandwidth rangebefore the bandwidth range is reset will be explained with reference toFIG. 3. A usable bandwidth 55 is located to the wide bandwidth side froma bandwidth range 43 before the bandwidth range is reset. A specifiednumber of bandwidths are selected from within the bandwidth range 43.The measurement packets are transmitted using the selected bandwidths inorder from the wide bandwidth side to the narrow bandwidth side (arrow48). In the receiving device, a determination is made as to whether theusable bandwidth 55 is located to the wide bandwidth side from thebandwidth range 43. The determination result is stored in the resultpacket and is transmitted from the receiving device to the transmittingdevice.

The transmitting device resets the bandwidth range. Because the usablebandwidth 55 is to the wide bandwidth side from the bandwidth range 43,the bandwidth range 43 is extended in the direction of the widerbandwidths, and a bandwidth range 44 is obtained. The transmittingdevice sets the conditions for transmitting the measurement packets formeasuring the bandwidths within the bandwidth range 44. Unlike when thebandwidths were measured based in the bandwidth range 43, thetransmitting intervals are set such that the bandwidths that will beused for transmitting the measurement packets will be contained within abandwidth range 45 that is within the bandwidth range 44 and outside thebandwidth range 43. A specified number of bandwidths are selected fromwithin the bandwidth range 45. The bandwidths that are used fortransmitting the measurement packets are selected by a binary searchfrom among the selected bandwidths that are within the bandwidth range45. The transmitting device transmits the measurement packets one at atime using the selected bandwidths. The transmitting device receives aresult packet that contains, as a computation result, the ratio of thetransmitting interval to the receiving interval. Based on thecomputation result, the transmitting device determines whether thebandwidth that was used for transmitting the measurement packets is theusable bandwidth. In a case where it is determined that the bandwidththat was used for transmitting is not the usable bandwidth, the nextmeasurement packet is transmitted using the next bandwidth that isselected by the binary search.

As shown in FIG. 3, a bandwidth 75 that is in the center of thebandwidth range 45 is selected first. The measurement packets aretransmitted using the selected bandwidth. 75. The bandwidth 75 is to thenarrow bandwidth side from the usable bandwidth 55 (the ratio of thetransmitting interval to the receiving interval equals 1). Next, abandwidth 77 is selected (arrow 81) that is midway between the bandwidth75 and a bandwidth 73 that is the farthest to the wide bandwidth sidewithin the bandwidth range 45. The measurement packets are transmittedusing the selected bandwidth 77. The bandwidth 77 is to the widebandwidth side from the usable bandwidth 55 (the ratio of thetransmitting interval to the receiving interval is less than 1). Theratio of the transmitting interval to the receiving interval haschanged, so the usable bandwidth is between the bandwidth 75 and thebandwidth 77. Next, a bandwidth 79 is selected (arrow 83) that is midwaybetween the bandwidth 75 and the bandwidth 77. The bandwidth 79 is tothe narrow bandwidth side from the usable bandwidth 55 (the ratio of thetransmitting interval to the receiving interval equals 1). Furthermore,the bandwidth 79 is to the narrow bandwidth side from the bandwidth 77,for which the ratio is different. The transmitting device specifies thebandwidth 79 as the usable bandwidth.

In a case where it has been determined that the usable bandwidth 55 isto the wide bandwidth side from the bandwidth range 43, there is astrong possibility that the usable bandwidth 55 will be within thebandwidth range 45, which is within the bandwidth range 44 and outsidethe bandwidth range 43. The transmitting device gives priority toselecting the bandwidths within the bandwidth range 45, where there is astrong possibility that the usable bandwidth is located, and uses theselected bandwidths for transmitting the measurement packets. Thetransmitting device is thus able to specify the usable bandwidthefficiently and in a shorter time. The transmitting device also uses thebinary search to successively select the bandwidths and uses theselected bandwidths for transmitting the measurement packets. Becausethe bandwidths within the bandwidth range are used without any of thebandwidths being missed, the transmitting device is able to reliablyspecify the usable bandwidth. Furthermore, the usable bandwidth can bespecified in a shorter time than in a case where the bandwidths areselected in order from the narrow bandwidth side to the wide bandwidthside.

The bandwidth measurement method that is used in a case where 3) theusable bandwidth is within the bandwidth range before the bandwidthrange is reset will be explained with reference to FIG. 4. A usablebandwidth 56 is located within a bandwidth range 58 before the bandwidthrange is reset. A specified number of bandwidths are selected within thebandwidth range 58. The measurement packets are transmitted using theselected bandwidths in order from the wide bandwidth side toward thenarrow bandwidth side (arrow 49). A determination is made in thereceiving device that the usable bandwidth 56 is located within thebandwidth range 58. A bandwidth 57 is specified that is to the narrowbandwidth side in relation to the usable bandwidth 56. The result packetthat contains the determination result is transmitted from the receivingdevice to the transmitting device. Note that because the resolution ofthe transmitting interval that is used for transmitting the measurementpackets is low, the bandwidth 57 does not perfectly match the actualusable bandwidth 56. Hereinafter, the bandwidth 57 is called the targetbandwidth 57.

The transmitting device resets the bandwidth range. Because the targetbandwidth 57 is located within the bandwidth range 58, the bandwidthrange is reduced to a narrower range (a bandwidth range 46) thatincludes the target bandwidth 57. The transmitting device sets theconditions for transmitting the measurement packets for measuring thebandwidths within the bandwidth range 46. A specified number ofbandwidths are selected within the bandwidth range 46. Because thebandwidth range has been reduced, the resolutions of the selectedbandwidths are high. Unlike when the bandwidths were measured based onthe bandwidth range 58, the transmitting intervals for the measurementpackets are set such that the bandwidths that are used for transmittingthe measurement packets are selected from among the selected bandwidthsin order starting with the bandwidth that is closest to the targetbandwidth 57. The transmitting device transmits the measurement packetsone at a time. The transmitting device receives a result packet thatcontains, as a computation result, the ratio of the transmittinginterval to the receiving interval. Based on the computation result thatis contained in the received result packet, the transmitting devicedetermines whether the bandwidth that was used for transmitting themeasurement packets is the usable bandwidth. In a case where it isdetermined that the bandwidth that was used for transmitting is not theusable bandwidth, the next measurement packet is transmitted using thenext selected bandwidth.

As shown in FIG. 4, a bandwidth 90 that is the closest to the targetbandwidth 57 is selected first. The measurement packets are transmittedusing the selected bandwidth 90. The bandwidth 90 is to the narrowbandwidth side from the usable bandwidth 56 (the ratio of thetransmitting interval to the receiving interval equals 1). Next, abandwidth 91 is selected (arrow 95) that is adjacent to the bandwidth 90on the narrow bandwidth side. The measurement packet is transmittedusing the selected bandwidth 91. The bandwidth 91 is to the narrowbandwidth side from the usable bandwidth 56 (the ratio of thetransmitting interval to the receiving interval equals 1). Next, abandwidth 92 is selected (arrow 96) that is adjacent to the bandwidth 90on the wide bandwidth side. The measurement packet is transmitted usingthe selected bandwidth 92. The bandwidth 92 is to the narrow bandwidthside from the usable bandwidth 56 (the ratio of the transmittinginterval to the receiving interval equals 1). Next, a bandwidth 93 isselected (arrow 97) that is the closest to the bandwidth 90 among theunmeasured bandwidths on the narrow bandwidth side of the bandwidth 90.The measurement packet is transmitted using the selected bandwidth 93.The bandwidth 93 is to the narrow bandwidth side from the usablebandwidth 56 (the ratio of the transmitting interval to the receivinginterval equals 1). Next, a bandwidth 94 is selected (arrow 98) that isthe closest to the bandwidth 90 among the unmeasured bandwidths on thewide bandwidth side of the bandwidth 90. The measurement packet istransmitted using the selected bandwidth 94. The bandwidth 94 is to thewide bandwidth side from the usable bandwidth 56 (the ratio of thetransmitting interval to the receiving interval is less than 1). Theratio for the bandwidth 94 has changed from that for the adjacentbandwidth 92. Between the bandwidth 92 and the bandwidth 94, thetransmitting device specifies the bandwidth 92, which is to the narrowbandwidth side, as the usable bandwidth. A bandwidth that is closer tothe usable bandwidth 56 can thus be specified.

As described above, in a case where the usable bandwidth 56 is locatedwithin the bandwidth range 58 before the bandwidth range is reset, thetransmitting device selects the bandwidths from among the plurality ofbandwidths that have been selected within the bandwidth range 46 afterthe bandwidth range has been reset, starting with the bandwidth 90 thatis the closest to the target bandwidth 57, and uses the selectedbandwidths for transmitting the measurement packets. Because theresolutions of the bandwidths that are selected within the bandwidthrange 46 are higher, the usable bandwidth can be specified moreaccurately. Because the measurement packets are transmitted withpriority given to the bandwidths that are closest to the targetbandwidth 57, the transmitting device is able to specify the usablebandwidth in a short time. Furthermore, the usable bandwidth variesrepeatedly in accordance with the network environment. Therefore, thereis a possibility that the target bandwidth 57 that is specified based onthe bandwidth range 58 will vary until the usable bandwidth is nextspecified based on the bandwidth range 46. However, in a case where thebandwidths are measured based on the bandwidth range 46, thetransmitting device selects the bandwidths in order, starting with thebandwidth that is closest to the specified target bandwidth 57, and usesthe selected bandwidths for transmitting the measurement packets. Thus,even in a case where the usable bandwidth has changed, the transmittingdevice is able to specify the usable bandwidth after it has changed,reliably and in a short time.

In the explanation above, after the bandwidth range has been reset, thereceiving device computes the ratio of the transmitting interval to thereceiving interval, stores the ratio in the result packet, and transmitsthe result packet to the transmitting device. The present disclosure isnot limited to this method. The receiving device may also transmit tothe transmitting device a result packet that contains the receivinginterval. The transmitting device may then compute the ratio of thetransmitting interval to the receiving interval. The receiving devicemay also store a history of the computation results for the ratio of thetransmitting interval to the receiving interval and may specify theusable bandwidth. The receiving device may then transmit to thetransmitting device a result packet that contains the specified usablebandwidth.

Main processing and receiving processing that are performed by the CPU10 of the communication device 1 will be explained with reference toFIGS. 5 to 14. The CPU 10 starts and performs the main processing andthe receiving processing when the electric power supply to thecommunication device 1 is turned on.

The main processing will be explained with reference to FIGS. 5 to 12.When the main processing is started, a bandwidth range is set withinwhich it is anticipated that the usable bandwidth can be specified (StepSi). The conditions for transmitting the measurement packets formeasuring the bandwidth are set based on the bandwidth range that hasbeen set. Bandwidths within the bandwidth range are selected in orderfrom the wide bandwidth side to the narrow bandwidth side. Themeasurement packets are successively transmitted to anothercommunication device 1 using one of the selected bandwidths (Step S3).In the other communication device 1, the location of the usablebandwidth in relation to the bandwidth range is specified. The resultpacket that contains the specified information is transmitted from theother communication device 1, and the result packet is received (StepS5). The location of the usable bandwidth in relation to the bandwidthrange is specified based on the information that is contained in thereceived result packet.

In a case where the usable bandwidth is specified as being located tothe narrow bandwidth side from the bandwidth range (YES at Step S7),processing to specify the usable bandwidth that is located to the narrowbandwidth side (narrow bandwidth measurement processing; refer to FIG.6) is performed (Step S9). In a case where the usable bandwidth isspecified as being located to the wide bandwidth side from the bandwidthrange (NO at Step S7; YES at Step S11), processing to specify the usablebandwidth that is located to the wide bandwidth side (wide bandwidthmeasurement processing; refer to FIG. 7) is performed (Step S13). In acase where the usable bandwidth is specified as being located within thebandwidth range (NO at Step S11), processing to specify the usablebandwidth more specifically within the bandwidth range (bandwidthmeasurement processing) is performed (Step S15).

The narrow bandwidth measurement processing will be explained withreference to FIG. 6. The bandwidth range is reset (Step S21). Becausethe usable bandwidth is located to the narrow bandwidth side from thebandwidth range before the bandwidth range is reset, the bandwidth rangeis extended to the narrow bandwidth side. The conditions are set fortransmitting the measurement packets for measuring the bandwidths withinthe reset bandwidth range. The bandwidth that is the farthest to thenarrow bandwidth side among the plurality of bandwidths that have beenselected within the reset bandwidth range is selected (Step S22). Themeasurement packet is transmitted to the other communication device 1using the selected bandwidth (Step S23). The bandwidth that is used fortransmitting the measurement packet is hereinafter called the usedbandwidth. The other communication device 1 receives the measurementpacket. The other communication device 1 computes the ratio of thetransmitting interval to the receiving interval. The result packet thatcontains the ratio is transmitted from the other communication device 1,and the result packet is received (Step S25). The ratio of thetransmitting interval to the receiving interval that is contained in thereceived result packet is the ratio for the measurement packet that wastransmitted using the used bandwidth.

In a case where the ratio of the transmitting interval to the receivinginterval is equal to 1 (NO at Step S27), the usable bandwidth is to thewide bandwidth side from the used bandwidth. The bandwidth that isadjacent to the used bandwidth on the wide bandwidth side is selected asthe next used bandwidth. The measurement packet is transmitted using thenext used bandwidth that has been selected (Step S31). The processingreturns to Step S25.

In a case where the ratio of the transmitting interval to the receivinginterval that is contained in the received result packet is less than 1(YES at Step S27), it is possible that the bandwidth that is adjacent tothe used bandwidth on the narrow bandwidth side is the usable bandwidth.A determination is made as to whether the used bandwidth is thebandwidth that is the farthest to the narrow bandwidth side within thereset bandwidth range (Step S28). In a case where the used bandwidth isthe bandwidth that is the farthest to the narrow bandwidth side withinthe reset bandwidth range (YES at Step S28), the usable bandwidth islocated to the narrow bandwidth side from the reset bandwidth range, sothe usable bandwidth cannot be specified. Information to the effect thatthe usable bandwidth cannot be specified because the usable bandwidth islocated to the narrow bandwidth side from the reset bandwidth range isstored in the RAM 12 (Step S29). The narrow bandwidth measurementprocessing is terminated, and the processing returns to the mainprocessing (refer to FIG. 5). On the other hand, in a case where theused bandwidth is not the bandwidth that is the farthest to the narrowbandwidth side within the reset bandwidth range (NO at Step S28), thebandwidth that is adjacent to the used bandwidth on the narrow bandwidthside is specified as the usable bandwidth. The specified usablebandwidth is stored in the RAM 12 (Step S30). The narrow bandwidthmeasurement processing is terminated, and the processing returns to themain processing (refer to FIG. 5).

By performing the processing that is described above, the communicationdevice 1 is able to transmit the measurement packets giving priority tousing the bandwidths on the narrow bandwidth side. It is thus possiblefor to reliably prevent the communication device 1 from transmitting themeasurement packets using a bandwidth that is to the wide bandwidth sidefrom the usable bandwidth. Because the other communication device 1 isable to receive the measurement packets in a more stable manner, thereceiving interval can be computed accurately. The communication device1 is thus able to specify the usable bandwidth accurately.

The wide bandwidth measurement processing will be explained withreference to FIGS. 7 to 10. The bandwidth range is reset (Step S33).Because the usable bandwidth is located to the wide bandwidth side fromthe bandwidth range before the bandwidth range is reset, the bandwidthrange is extended to the wide bandwidth side. The conditions are set fortransmitting the measurement packets for measuring the bandwidths withinthe reset bandwidth range. Processing (binary search processing; referto FIG. 8) is performed that selects the used bandwidth from among theplurality of bandwidths that have been selected within the bandwidthrange that is within the reset bandwidth range and outside the bandwidthrange before the bandwidth range was reset (Step S35). Hereinafter, thebandwidth range that is within the reset bandwidth range and outside thebandwidth range before the bandwidth range was reset is called theobject bandwidth range.

The binary search processing will be explained with reference to FIG. 8.A bandwidth L that is located the farthest to the narrow bandwidth side,and a bandwidth U that is located the farthest to the wide bandwidthside are selected from among a plurality of bandwidths that are selectedfrom within the object bandwidth range. A bandwidth M that is midwaybetween the bandwidth L and the bandwidth U is computed based on theformula below.M=(L+U)/2

The measurement packet is transmitted to the other communication device1 using the computed bandwidth M as the used bandwidth (Step S63). Theother communication device 1 receives the measurement packets andcomputes the ratio of the transmitting interval to the receivinginterval. The result packet that contains the ratio is transmitted fromthe other communication device 1, and the result packet is received(Step S65). The ratio of the transmitting interval to the receivinginterval that is contained in the received result packet is the ratiofor the measurement packet that was transmitted using the usedbandwidth.

In a case where the ratio of the transmitting interval to the receivinginterval is less than 1 (YES at Step S67), the usable bandwidth islocated to the narrow bandwidth side from the used bandwidth. Adetermination is made as to whether the used bandwidth matches thebandwidth L (Step S69). In a case where the used bandwidth does matchthe bandwidth L (YES at Step S69), the usable bandwidth is located tothe narrow bandwidth side from the bandwidth L, and the usable bandwidthis not located within the object bandwidth range. In processing thatwill be described later (Steps S45, S47, S49, S53 (refer to FIG. 7)), adetermination is made as to whether the usable bandwidth is locatedwithin the bandwidth range before the bandwidth range was reset (detailswill be described later). Information to the effect that the usablebandwidth is located to the narrow bandwidth side from the objectbandwidth is stored in the RAM 12 (Step S71). The binary searchprocessing is terminated, and the processing returns to the widebandwidth measurement processing (refer to FIG. 7).

In a case where the used bandwidth does not match the bandwidth L (NO atStep S69), a determination is made as to whether the bandwidth that isadjacent to the used bandwidth on the narrow bandwidth side has alreadybeen measured (Step S73). In a case where the bandwidth that is adjacentto the used bandwidth on the narrow bandwidth side has already beenmeasured (YES at Step S73), the ratio of the transmitting interval tothe receiving interval for the measured bandwidth is always equal to 1.The bandwidth that is adjacent to the used bandwidth on the narrowbandwidth side is stored in the RAM 12 as the usable bandwidth (StepS75). The binary search processing is then terminated, and theprocessing returns to the wide bandwidth measurement processing (referto FIG. 7). In a case where the bandwidth that is adjacent to the usedbandwidth on the narrow bandwidth side has not yet been measured (NO atStep S73), the candidates for the usable bandwidth are narrowed downfurther to the narrow bandwidth side. Processing that measures thebandwidth using the bandwidth on the narrow bandwidth side that has notyet been measured (first transmission processing; refer to FIG. 9) isperformed (Step S77).

The first transmission processing will be explained with reference toFIG. 9. A determination is made as to whether an already measuredbandwidth exists to the narrow bandwidth side from the used bandwidth(Step S91). In a case where an already measured bandwidth does exist tothe narrow bandwidth side from the used bandwidth (YES at Step S91), themeasured bandwidth is specified as a bandwidth P (Step S93). Theprocessing advances to Step S97. In a case where an already measuredbandwidth does not exist to the narrow bandwidth side from the usedbandwidth (NO at Step S91), the bandwidth L is specified as thebandwidth P (Step S95). The processing advances to Step S97.

At Step S97, a bandwidth that is midway between the used bandwidth (thebandwidth M) and the bandwidth P is specified. The bandwidth M is thenupdated to the specified bandwidth (Step S97).M=(M+P)/2

The measurement packet is transmitted using the updated bandwidth M asthe used bandwidth (Step S99). The first transmission processing is thenterminated, and the processing returns to the binary search processing(refer to FIG. 8). In the binary search processing, after the firsttransmission processing (Step S77) is terminated, the processing returnsto Step S65.

At Step S67, in a case where the ratio of the transmitting interval tothe receiving interval is equal to 1 (NO at Step S67), the usablebandwidth is located to the wide bandwidth side from the used bandwidth.A determination is made as to whether the used bandwidth matches thebandwidth U (Step S79). In a case where the used bandwidth does matchthe bandwidth U (YES at Step S79), the usable bandwidth is located tothe wide bandwidth side from the bandwidth U, and the usable bandwidthis not located within the object bandwidth range. In this case, theusable bandwidth cannot be specified if the object bandwidth range isnot extended to the wide bandwidth side. Information to the effect thatthe usable bandwidth is located to the wide bandwidth side from theobject bandwidth and that the usable bandwidth cannot be specified isstored in the RAM 12 (Step S85). The binary search processing isterminated, and the processing returns to the wide bandwidth measurementprocessing (refer to FIG. 7).

In a case where the used bandwidth does not match the bandwidth U (NO atStep S79), a determination is made as to whether the bandwidth that isadjacent to the used bandwidth on the wide bandwidth side has alreadybeen measured (Step S81). In a case where the bandwidth that is adjacentto the used bandwidth on the wide bandwidth side has already beenmeasured (YES at Step S81), the ratio of the transmitting interval tothe receiving interval for the measured bandwidth is always less than 1.The used bandwidth is located to the wide bandwidth side from thebandwidth U, and the usable bandwidth is not located within the objectbandwidth range. In this case, the usable bandwidth cannot be specifiedif the object bandwidth range is not extended to the wide bandwidthside. Information to the effect that the usable bandwidth is located tothe wide bandwidth side from the object bandwidth and that the usablebandwidth cannot be specified is stored in the RAM 12 (Step S85). Thebinary search processing is terminated, and the processing returns tothe wide bandwidth measurement processing (refer to FIG. 7). In a casewhere the bandwidth that is adjacent to the used bandwidth on the widebandwidth side has not yet been measured (NO at Step S81), thecandidates for the usable bandwidth are narrowed down further to thewide bandwidth side. Processing that measures the bandwidth using thebandwidth on the wide bandwidth side that has not yet been measured(second transmission processing; refer to FIG. 10) is performed (StepS83).

The second transmission processing will be explained with reference toFIG. 10. A determination is made as to whether an already measuredbandwidth exists to the wide bandwidth side from the used bandwidth(Step S101). In a case where an already measured bandwidth does exist tothe wide bandwidth side from the used bandwidth (YES at Step S101), themeasured bandwidth is specified as the bandwidth P (Step S103). Theprocessing advances to Step S107. In a case where an already measuredbandwidth does not exist to the wide bandwidth side from the usedbandwidth (NO at Step S101), the bandwidth U is specified as thebandwidth P (Step S105). The processing advances to Step S107.

At Step S107, a bandwidth that is midway between the used bandwidth (thebandwidth M) and the bandwidth P is specified. The bandwidth M is thenupdated to the specified bandwidth (Step S107).M=(M+P)/2

The measurement packet is transmitted using the updated bandwidth M asthe used bandwidth (Step S109). The second transmission processing isthen terminated, and the processing returns to the binary searchprocessing (refer to FIG. 8). In the binary search processing, after thesecond transmission processing (Step S83) is terminated, the processingreturns to Step S65.

As shown in FIG. 7, after the binary search processing (Step S35) isterminated, a determination is made as to whether the usable bandwidthis stored in the RAM 12 (Step S37). In a case where the usable bandwidthis stored in the RAM 12 (Step S75; refer to FIG. 8) (YES at Step S37),the usable bandwidth has been specified, so the wide bandwidthmeasurement processing is terminated, and the processing returns to themain processing (refer to FIG. 5). In a case where information is storedin the RAM 12 to the effect that the usable bandwidth is located to thewide bandwidth side from the object bandwidth range (Step S85; refer toFIG. 8) (NO at Step S37; YES at Step S41), it is necessary to extend theobject bandwidth range further to the wide bandwidth side and to performthe bandwidth measurements, so the wide bandwidth measurement processingis terminated, and the processing returns to the main processing (referto FIG. 5).

In a case where information has been stored in the RAM 12 at Step S71(refer to FIG. 8) to the effect that the usable bandwidth is located tothe narrow bandwidth side from the object bandwidth range (Step S71;refer to FIG. 8) (NO at Step S41), it is necessary to shift thebandwidth range to the narrow bandwidth side and to perform thebandwidth measurements. The original bandwidth range before thebandwidth range was reset is once more set as the bandwidth range (StepS45). The binary search processing (refer to FIG. 8) is performed (StepS47), and an attempt is made to specify the usable bandwidth bymeasuring the bandwidths based on the original bandwidth range. Afterthe binary search processing has been performed, a determination is madeas to whether the usable bandwidth is stored in the RAM 12 (Step S49).In a case where the usable bandwidth has been stored in the RAM 12 atStep S75 (refer to FIG. 8) (YES at Step S49), the usable bandwidth hasbeen specified, so the wide bandwidth measurement processing isterminated, and the processing returns to the main processing (refer toFIG. 5). In a case where information has been stored in the RAM 12 tothe effect that the usable bandwidth is located to the narrow bandwidthside from the original bandwidth range (Step S71; refer to FIG. 8) (NOat Step S49), the usable bandwidth cannot be specified if the originalbandwidth range is not extended to the narrow bandwidth side.Information to the effect that the usable bandwidth is located to thenarrow bandwidth side from the original bandwidth range and that theusable bandwidth cannot be specified is stored in the RAM 12 (Step S53).The wide bandwidth measurement processing is then terminated, and theprocessing returns to the main processing (refer to FIG. 5).

By performing the processing that is described above, the communicationdevice 1 is able to transmit the measurement packets giving priority tousing the bandwidths within the object bandwidth range. Because there isa strong possibility that the usable bandwidth exists within the objectbandwidth range, the communication device 1 is able to find the usablebandwidth efficiently and in a shorter time. Furthermore, by using thebinary search processing to select the used bandwidth, the communicationdevice 1 is ability to reliably measure the bandwidths within thebandwidth range, without any of the bandwidths being missed.

The bandwidth measurement processing will be explained with reference toFIGS. 11 and 12. The bandwidth range is reset (S110). Because the usablebandwidth is located within the bandwidth range before the bandwidthrange was reset, the bandwidth range is reduced to a narrower range thatincludes the usable bandwidth. The conditions are set for transmittingthe measurement packets for measuring the bandwidths within the resetbandwidth range. First, the bandwidth that, among the plurality ofbandwidths that have been selected within the reset bandwidth range, isthe closest to the specified usable bandwidth is specified as the targetbandwidth. The specified target bandwidth is selected as the usedbandwidth (Step S111). The measurement packet is transmitted to theother communication device 1 using the used bandwidth (Step S112). Theother communication device 1 receives the measurement packets andtransmits the result packet in reply. The result packet is received(Step S113). The ratio of the transmitting interval to the receivinginterval that is contained in the received result packet is the ratiofor the measurement packet that was transmitted using the usedbandwidth.

The bandwidth is selected that is the closest to the target bandwidthamong the not yet measured bandwidths that are located to the narrowbandwidth side from the target bandwidth (Step S114). The measurementpacket is transmitted using the selected bandwidth as the used bandwidth(Step S115). The result packet that has been transmitted from the othercommunication device 1 is received (Step S117). A determination is madeas to whether the ratio of the transmitting interval to the receivinginterval that is contained in the result packet is different from theratio when the bandwidth that is adjacent to the used bandwidth on thewide bandwidth side was used (Step S119). In a case where the ratios aredifferent (YES at Step S119), the ratio has changed between the adjacentbandwidth and the used bandwidth. The used bandwidth is then specifiedas the new usable bandwidth. The new usable bandwidth is stored in theRAM 12 (Step S121). The bandwidth measurement processing is terminated,and the processing returns to the main processing (refer to FIG. 5).

In a case where the ratio that is contained in the received resultpacket matches the ratio when the bandwidth that is adjacent to the usedbandwidth on the wide bandwidth side was used (NO at Step S119), adetermination is made as to whether all of the bandwidths that have beenselected from within the reset bandwidth range have been used as theused bandwidth (Step S123). In a case where the measurement packets havebeen transmitted using all of the bandwidths that have been selectedfrom within the reset bandwidth range (YES at Step S123), the usablebandwidth is not located within the reset bandwidth range. Processingfor specifying the location of the usable bandwidth in relation to thereset bandwidth range (endpoint determination processing; refer to FIG.13) is performed (Step S124).

The endpoint determination processing will be explained with referenceto FIG. 13. A determination is made as to whether the ratio of thetransmitting interval to the receiving interval is less than 1 (StepS141). In a case where the ratio is less than 1 (YES at Step S141), theusable bandwidth is located to the narrow bandwidth side from the resetbandwidth range. Information to the effect that the usable bandwidth islocated to the narrow bandwidth side from the reset bandwidth range andthat the usable bandwidth cannot be specified is stored in the RAM 12(Step S143). The endpoint determination processing is terminated, andthe processing returns to the bandwidth measurement processing (refer toFIG. 11). In a case where the ratio is equal to 1 (NO at Step S141), theusable bandwidth is located to the wide bandwidth side from the resetbandwidth range. Information to the effect that the usable bandwidth islocated to the wide bandwidth side from the reset bandwidth range andthat the usable bandwidth cannot be specified is stored in the RAM 12(Step S145). The endpoint determination processing is terminated, andthe processing returns to the bandwidth measurement processing (refer toFIG. 11). As shown in FIG. 11, after the endpoint determinationprocessing is terminated, the bandwidth measurement processing isterminated, and the processing returns to the main processing (refer toFIG. 5).

In a case where a determination is made at Step S123 that there arebandwidths remaining within the reset bandwidth range that have not beenused as the used bandwidth (NO at Step S123), the processing proceeds toStep S125 (refer to FIG. 12). As shown in FIG. 12, at Step S125, thebandwidth is selected that is the closest to the target bandwidth amongthe not yet measured bandwidths that are located to the wide bandwidthside in relation to target bandwidth (Step S125). The measurement packetis transmitted using the selected bandwidth as the used bandwidth (StepS127). The result packet that has been transmitted from the othercommunication device 1 is received (Step S129). A determination is madeas to whether the ratio of the transmitting interval to the receivinginterval that is contained in the result packet is different from theratio when the bandwidth that is adjacent to the used bandwidth on thenarrow bandwidth side was used (Step S131). In a case where the ratiosare different (YES at Step S131), the ratio has changed between theadjacent bandwidth and the used bandwidth. The bandwidth that isadjacent to the used bandwidth on the narrow bandwidth side is specifiedas the new usable bandwidth. The new usable bandwidth is stored in theRAM 12 (Step S133). The bandwidth measurement processing is terminated,and the processing returns to the main processing (refer to FIG. 5).

In a case where the ratio that is contained in the received resultpacket matches the ratio when the bandwidth that is adjacent to the usedbandwidth on the narrow bandwidth side was used (NO at Step S131), adetermination is made as to whether all of the bandwidths that have beenselected from within the reset bandwidth range have been used as theused bandwidth (Step S135). In a case where the measurement packets havebeen transmitted using all of the bandwidths that have been selectedfrom within the reset bandwidth range (YES at Step S135), the endpointdetermination processing (refer to FIG. 13) is performed (Step S137).After the endpoint determination processing is terminated, the bandwidthmeasurement processing is terminated, and the processing returns to themain processing (refer to FIG. 5). In a case where there are bandwidthsremaining that have been selected from within the reset bandwidth rangeand have not been used as the used bandwidth (NO at Step S135), theprocessing returns to Step S114 (refer to FIG. 11).

In a case like that described above, where the usable bandwidth islocated within the bandwidth range before the bandwidth range is reset,priority is given to selecting, as the used bandwidth, those bandwidthsthat are close to the target bandwidth among the bandwidths that havebeen selected from within the reset bandwidth range. This makes itpossible for the communication device 1 to specify the usable bandwidthimmediately, even in a case where the usable bandwidth has changed. Thecommunication device 1 is thus able to specify the usable bandwidthefficiently and in a shorter time.

As shown in FIG. 5, in the main processing, after the narrow bandwidthmeasurement processing (Step S9), the wide bandwidth measurementprocessing (Step S13), and the bandwidth measurement processing (StepS15) have been terminated, the processing returns to Step S7. In each ofthe types of measurement processing, in a case where it is determinedthat the usable bandwidth is located to the narrow bandwidth side fromthe reset bandwidth range (Step S29 (refer to FIG. 6); Step S53 (referto FIG. 7); Step S143 (refer to FIG. 13)), the narrow bandwidthmeasurement processing (Step S9) is performed once more. In each of thetypes of measurement processing, in a case where it is determined thatthe usable bandwidth is located to the wide bandwidth side from thereset bandwidth range (Step S85 (refer to FIG. 8); Step S145 (refer toFIG. 13)), the wide bandwidth measurement processing (Step S13) isperformed once more. In each of the types of measurement processing, ina case where it is determined that the usable bandwidth is locatedwithin the reset bandwidth range (Step S30 (refer to FIG. 6); Step S75(refer to FIG. 8); Step S121 (refer to FIG. 11); Step S133 (refer toFIG. 12)), the bandwidth measurement processing (Step S15) is performedonce more. After the usable bandwidth has been specified, thetransmitting and receiving of the desired communication packets areperformed between the communication devices 1 using the usablebandwidth.

The receiving processing will be explained with reference to FIG. 14. Adetermination is made as to whether the measurement packets have beenreceived from the other communication device 1 (Step S151). In a statein which the measurement packets have not been received (NO at StepS151), the processing returns to Step S151. In a case where themeasurement packets have been received (YES at Step S151), thetransmitting intervals that are contained in the measurement packets areextracted. The time from when the preceding measurement packet wasreceived until the current measurement packet was received (thereceiving interval) is computed. The ratio of the transmitting intervalto the receiving interval is computed (Step S153). The result packetthat contains the ratio is transmitted to the other communication device1 (Step S155). The processing returns to Step S151.

As explained previously, the communication device 1 attempts to specifythe usable bandwidth by transmitting to the other communication device 1pluralities of measurement packets for which the bandwidths that areused are different. The used bandwidth is selected as desired based onthe positional relationship between the usable bandwidth and thebandwidth range before the bandwidth range is reset and on thepositional relationship between the usable bandwidth and the bandwidthrange after the bandwidth range is reset. The communication device 1 canchange the used bandwidth according to the location of the usablebandwidth in the bandwidth range before and after the bandwidth range isreset. Unlike a case in which the used bandwidth is selected based on auniform rule, the communication device 1 is able to select the optimumused bandwidth according to the location of the usable bandwidth inrelation to the bandwidth range, and to use the selected bandwidth whentransmitting the measurement packets. The communication device 1 is ableto specify the usable bandwidth while maintaining a stable state ofcommunication. The communication device 1 is also able to specify theusable bandwidth efficiently and in a short time.

Note that the present disclosure is not limited to the embodiment thatis described above, and various types of modifications can be made. Inthe embodiment described above, in a case where the usable bandwidth islocated in the bandwidth range before the bandwidth range is reset, thecommunication device 1 selects the used bandwidths in order from amongthe bandwidths that have been selected from within the reset bandwidthrange, starting with the bandwidth that is the closest to the usablebandwidth, then uses the selected bandwidths when transmitting themeasurement packets. The present disclosure is not limited to thismethod. For example, the communication device 1 may also select the usedbandwidths such that the mean value of the used bandwidths for two setsof the measurement packets that are transmitted in succession matchesthe target bandwidth. Hereinafter, a modified example of the presentembodiment will be explained. Note that for the portions of theprocessing that are the same as in the embodiment that is describedabove, the same reference numerals are used, and explanations will beone of omitted and simplified.

The bandwidth measurement processing in the modified example will beexplained with reference to FIGS. 15 and 16. The bandwidth measurementprocessing is called in the main processing that is shown in FIG. 5. Asshown in FIG. 15, the bandwidth range is reset (Step S110). Because theusable bandwidth is located within the bandwidth range before thebandwidth range was reset, the bandwidth range is reduced to a narrowerrange that includes the usable bandwidth. Note that in the modifiedexample, the bandwidth range is set such that the target bandwidth isthe median value.

The conditions are set for transmitting the measurement packets formeasuring the bandwidths within the reset bandwidth range. First, thebandwidth that, among the plurality of bandwidths that have beenselected within the reset bandwidth range, is the farthest to the widebandwidth side is selected as the used bandwidth (Step S111). Themeasurement packet is transmitted to the other communication device 1using the used bandwidth (Step S112). The result packet that istransmitted from the other communication device 1 is received (StepS113). A determination is made as to whether the ratio of thetransmitting interval to the receiving interval that is contained in thereceived result packet is equal to 1 (Step S161). In a case where theratio is equal to 1 (YES at Step S161), the usable bandwidth is locatedto the wide bandwidth side from the reset bandwidth range. Informationto the effect that the usable bandwidth is located to the wide bandwidthside from the reset bandwidth range and that the usable bandwidth cannotbe specified is stored in the RAM 12 (Step S163). The bandwidthmeasurement processing is terminated, and the processing returns to themain processing (refer to FIG. 5).

In a case where the ratio that is contained in the received resultpacket is less than 1 NO at Step S161), the bandwidth that is thefarthest to the narrow bandwidth side of the reset bandwidth range isselected as the used bandwidth (Step S165). Note that the targetbandwidth is the median value in the reset bandwidth range. Therefore,the mean value ((W1+W2)/2) of the used bandwidth (W1) that was selectedat Step S111 and the used bandwidth (W2) that was selected at Step S165becomes the target bandwidth.

The measurement packet is transmitted to the other communication device1 using the selected used bandwidth (Step S167). The result packet thathas been transmitted from the other communication device 1 is received(Step S169). In a case where the ratio of the transmitting interval tothe receiving interval that is contained in the received result packetis less than 1 (YES at Step S171), the usable bandwidth is located tothe narrow bandwidth side from the reset bandwidth range. Information tothe effect that the usable bandwidth is located to the narrow bandwidthside from the reset bandwidth range and that the usable bandwidth cannotbe specified is stored in the RAM 12 (Step S173). The bandwidthmeasurement processing is terminated, and the processing returns to themain processing (refer to FIG. 5). In a case where the ratio of thetransmitting interval to the receiving interval that is contained in thereceived result packet is equal to 1 (NO at Step S171), the usablebandwidth is located within the reset bandwidth range. Processing thatspecifies the usable bandwidth more specifically within the resetbandwidth range (intra-bandwidth measurement processing) is performed(Step S175). After the intra-bandwidth measurement processing isterminated, the processing returns to the main processing (refer to FIG.5).

As shown in FIG. 16, in the intra-bandwidth measurement processing, thebandwidth that is the farthest to the wide bandwidth side among the notyet measured bandwidths that have been selected from within the resetbandwidth range is selected as the used bandwidth (Step S181). Themeasurement packet is transmitted to the other communication device 1using the selected used bandwidth (Step S183), and the result packet isreceived (Step S185). In a case where the ratio of the transmittinginterval to the receiving interval that is contained in the receivedresult packet is equal to 1 (YES at Step S187), the ratio has changedbetween the used bandwidth and the bandwidth that is adjacent to theused bandwidth on the wide bandwidth side. The used bandwidth isspecified as the new usable bandwidth. The new usable bandwidth isstored in the RAM 12 (Step S189). The intra-bandwidth measurementprocessing is terminated, and the processing returns to the bandwidthmeasurement processing (refer to FIG. 15).

In a case where the ratio is less than 1 (NO at Step S187), adetermination is made as to whether the measurement packets have beentransmitted using all of the bandwidths that have been selected fromwithin the reset bandwidth range as the used bandwidth (Step S191). In acase where all of the bandwidths within the bandwidth range have beenused as the used bandwidth (YES at Step S191), the ratio has changedbetween the used bandwidth and the bandwidth that is adjacent to theused bandwidth on the narrow bandwidth side. The bandwidth that isadjacent to the used bandwidth on the narrow bandwidth side is specifiedas the new usable bandwidth. The new usable bandwidth is stored in theRAM 12 (Step S193). The intra-bandwidth measurement processing isterminated, and the processing returns to the bandwidth measurementprocessing (refer to FIG. 15).

In a case where there are bandwidths remaining within the resetbandwidth range that have not been selected as the used bandwidth (NO atStep S191), the bandwidth that is the farthest to the narrow bandwidthside among the not yet measured bandwidths that have been selected fromwithin the reset bandwidth range is selected as the used bandwidth (StepS195). Note that the target bandwidth is the median value in the resetbandwidth range, so the mean value of the used bandwidth that wasselected at Step S181 and the used bandwidth that was selected at StepS195 becomes the target bandwidth.

The measurement packet is transmitted to the other communication device1 using the selected used bandwidth (Step S197), and the result packetis received (Step S199). In a case where ratio that is contained in theresult packet is less than 1 (YES at Step S201), the ratio has changedbetween the used bandwidth and the bandwidth that is adjacent to theused bandwidth on the narrow bandwidth side. The bandwidth that isadjacent to the used bandwidth on the narrow bandwidth side is specifiedas the new usable bandwidth. The new usable bandwidth is stored in theRAM 12 (Step S203). The intra-bandwidth measurement processing isterminated, and the processing returns to the bandwidth measurementprocessing (refer to FIG. 15).

In a case where ratio that is contained in the result packet is equal to1 (NO at Step S201), a determination is made as to whether themeasurement packets have been transmitted using all of the bandwidthsthat have been selected from within the reset bandwidth range as theused bandwidth (Step S205). In a case where all of the bandwidths thathave been selected from within the bandwidth range have been used as theused bandwidth (YES at Step S205), the ratio has changed between theused bandwidth and the bandwidth that is adjacent to the used bandwidthon the wide bandwidth side. The used bandwidth is specified as the newusable bandwidth. The new usable bandwidth is stored in the RAM 12 (StepS207). The intra-bandwidth measurement processing is terminated, and theprocessing returns to the bandwidth measurement processing (refer toFIG. 15). In a case where there are bandwidths remaining, among thebandwidths that have been selected from within the reset bandwidthrange, that have not been selected as the used bandwidth (NO at StepS205), the processing returns to Step S181.

In the modified example, as explained above, in a case where thepluralities of measurement packets are transmitted in succession fromthe communication device 1, the used bandwidths are selected such thatthe mean value of the used bandwidths becomes the target bandwidth. Thusthe communication device 1 can average the values of the bandwidths thatare used for the measurement packets that are transmitted within a fixedtime interval. The communication device 1 is able to maintain a fixednumber of measurement packets that are transmitted within the fixed timeinterval. The communication device 1 is therefore able to transmit thedata in a stable manner.

The communication that uses the measurement packets as described abovemay use dedicated packets, and it may also use, as the measurementpackets, the packets that are transmitted and received between thecommunication devices 1 in a video conference, for example. Themeasurement packets may be transmitted and received between thecommunication devices 1 through a server, and they may also betransmitted and received directly between the communication devices 1.

In the embodiment that is described above, in a case where the usablebandwidth is located to the narrow bandwidth side from the bandwidthrange before the bandwidth range is reset, the bandwidth range is resetby extending the original bandwidth range to the narrow bandwidth side.In a case where the usable bandwidth is located to the wide bandwidthside from the bandwidth range before the bandwidth range is reset, thebandwidth range is reset by extending the original bandwidth range tothe wide bandwidth side. The present disclosure is not limited to thismethod. In a case where the usable bandwidth is located to the narrowbandwidth side from the bandwidth range before the bandwidth range isreset, a new bandwidth range may be set to the narrow bandwidth sidefrom the original bandwidth range. In a case where the usable bandwidthis located to the wide bandwidth side from the bandwidth range beforethe bandwidth range is reset, a new bandwidth range may be set to thewide bandwidth side from the original bandwidth range.

In the embodiment that is described above, in a case where the originalbandwidth range has been extended to the narrow bandwidth side, thecommunication device 1 selects the used bandwidths from within the resetbandwidth range in order from the narrow bandwidth side to the widebandwidth side. In a case where the original bandwidth range has beenextended to the wide bandwidth side, the communication device 1 selectsthe used bandwidths from within the reset bandwidth range in the orderthat is determined by the binary search. The present disclosure is notlimited to this method. In a case where the original bandwidth range hasbeen extended to the narrow bandwidth side, the communication device 1may also select the used bandwidths from within the reset bandwidthrange in the order that is determined by the binary search. In a casewhere the original bandwidth range has been extended to the widebandwidth side, the communication device 1 may also select the usedbandwidths from within the reset bandwidth range in order from thenarrow bandwidth side to the wide bandwidth side. The communicationdevice 1 may also switch between the two methods as desired.

In the embodiment that is described above, in a case where the usablebandwidth is located within the bandwidth range before the bandwidthrange is reset, the new used bandwidth is selected by searching for thebandwidth that is the closest to the target bandwidth, with the searchalternating between the narrow bandwidth side and the wide bandwidthside in relation to the target bandwidth. However, the presentdisclosure is not limited to this method. If the ratio of thetransmitting interval to the receiving interval is less than 1 in a casewhere the target bandwidth is used as the used bandwidth, the usedbandwidth may be selected by searching only for the bandwidths on thenarrow bandwidth side in relation to the target bandwidth. If the ratiois equal to 1 in a case where the target bandwidth is used as the usedbandwidth, the used bandwidth may be selected by searching only for thebandwidths on the wide bandwidth side in relation to the targetbandwidth. These methods make it possible for the communication device 1to specify the usable bandwidth in a shorter time.

The apparatus and methods described above with reference to the variousembodiments are merely examples. It goes without saying that they arenot confined to the depicted embodiments. While various features havebeen described in conjunction with the examples outlined above, variousalternatives, modifications, variations, and/or improvements of thosefeatures and/or examples may be possible. Accordingly, the examples, asset forth above, are intended to be illustrative. Various changes may bemade without departing from the broad spirit and scope of the underlyingprinciples.

What is claimed is:
 1. A communication device configured to be connectedto a network, comprising: a processor, and a memory storingcomputer-readable instructions, wherein when the computer-readableinstructions are executed by the processor, the processor is configuredto: make a first transmission of a plurality of groups of packets toanother communication device, each of the plurality of groups of packetsincluding a plurality of measurement packets that are transmitted with atransmitting interval, transmitting intervals of the plurality of groupsof packets differing from each other; make a first determination of alocation of a usable bandwidth in relation to a first bandwidth range,based on a result packet that is transmitted from the othercommunication device in response to the first transmission, the firstbandwidth range being a range within which bandwidths are measured, theusable bandwidth being one of the bandwidths that can be used in thenetwork, and the result packet containing information that pertains to arelationship between the transmitting interval and a receiving intervalat which the plurality of groups of packets are received by the othercommunication device; reset the first bandwidth range to a secondbandwidth range in accordance with a determination that has been made bythe first determination, the second bandwidth range being a range withinwhich the bandwidths are to be measured and in which at least one of anupper limit and a lower limit is different from the corresponding limitin the first bandwidth range; select, in order to determine whether theusable bandwidth is located within the second bandwidth range that hasbeen set by the resetting, a bandwidth from among a plurality ofbandwidths that have been selected from within the second bandwidthrange and based on the setting by the resetting, the bandwidth beingused when a group of packets is transmitted to the other communicationdevice; and make a second transmission of the group of packets to theother communication device using the bandwidth that has been selected bythe selecting.
 2. The communication device according to claim 1, whereinwhen the computer-readable instructions are executed by the processor,the processor is configured to: make a second determination of whetherthe usable bandwidth can be specified within the first bandwidth range,based on the result packet that was transmitted from the othercommunication device in response to the first transmission, and select anext bandwidth based on a determination that has been made by the seconddetermination.
 3. The communication device according to claim 2, whereinin a case where it has been determined by the first determination thatthe usable bandwidth is located to a narrow bandwidth side from thefirst bandwidth range and where the second bandwidth range has been setby the resetting, the processor is configured to make a first selectionof the bandwidth that is the farthest to the narrow bandwidth side fromamong the plurality of bandwidths that have been selected from withinthe second bandwidth range.
 4. The communication device according toclaim 3, wherein in a case where it has been determined by the seconddetermination that the usable bandwidth cannot be specified, theprocessor is configured to select as the next bandwidth, from among theplurality of bandwidths that have been selected from within the secondbandwidth range, the bandwidth that is the farthest to the narrowbandwidth side among the bandwidths that have not yet been selected bythe selecting.
 5. The communication device according to claim 2, whereinin a case where it has been determined by the first determination thatthe usable bandwidth is located to a wide bandwidth side from the firstbandwidth range and where the second bandwidth range has been reset bythe resetting, the processor is configured to select, from among theplurality of bandwidths that have been selected from within the secondbandwidth range, one of the bandwidths that are within the secondbandwidth range and the outside the first bandwidth range.
 6. Thecommunication device according to claim 5, wherein in a case where ithas been determined by the second determination that the usablebandwidth cannot be specified, the processor is configured to select asthe next bandwidth, from among the plurality of bandwidths within thesecond bandwidth range that are the outside the first bandwidth range, abandwidth that is found by a binary search.
 7. The communication deviceaccording to claim 2, wherein in a case where it has been determined bythe first determination that the usable bandwidth is located within thefirst bandwidth range and where the second bandwidth range has beenreset by the resetting, the processor is configured to select, fromamong the plurality of bandwidths that have been selected from withinthe second bandwidth range, a target bandwidth that is the bandwidththat is the closest to the usable bandwidth.
 8. The communication deviceaccording to claim 7, wherein in a case where it has been determined bythe second determination that the usable bandwidth cannot be specified,the processor is configured to select as the next bandwidth, from amongthe plurality of bandwidths that have been selected from within thesecond bandwidth range, the bandwidth that is the closest to the targetbandwidth among the bandwidths that have not yet been selected by theselecting.
 9. The communication device according to claim 7, wherein theprocessor is configured to select as the next bandwidth a bandwidth forwhich the mean value of the bandwidth and the bandwidth that wasselected previously is the closest to the target bandwidth.
 10. Acommunication method, comprising: performing a first transmission of aplurality of groups of packets to another communication device that isconfigured to be connected to a network, each of the plurality of groupsof packets including a plurality of measurement packets that aretransmitted with a transmitting interval, transmitting intervals of theplurality of groups of packets differing from each other; determining alocation of a usable bandwidth in relation to a first bandwidth range inresponse to the first transmission, based on a result packet that istransmitted from the other communication device, the first bandwidthrange being a range within which bandwidths are measured, the usablebandwidth being one of the bandwidths that can be used in the network,and the result packet containing information that pertains to arelationship between the transmitting interval and a receiving intervalat which the plurality of groups of packets are received by the othercommunication device; resetting the first bandwidth range to a secondbandwidth range in accordance with the determining of the location ofthe usable bandwidth in relation to the first bandwidth range, thesecond bandwidth range being a range within which the bandwidths are tobe measured and in which at least one of an upper limit and a lowerlimit is different from the corresponding limit in the first bandwidthrange; selecting a bandwidth from among a plurality of bandwidths thathave been selected from within the second bandwidth range and based onthe setting of the second bandwidth range, the bandwidth being used whena group of packets is transmitted to the other communication device, inorder to determine whether the usable bandwidth is located within thesecond bandwidth range that has been set; and performing a secondtransmission of the group of packets to the other communication deviceusing the selected bandwidth.
 11. A non-transitory computer-readablestorage medium that stores a computer-executable program forcommunication device that is configured to be connected to a network tocarry out communication with another communication device, the programcomprising instructions for: performing a first transmission of aplurality of groups of packets to another communication device that isconfigured to be connected to a network, each of the plurality of groupsof packets including a plurality of measurement packets that aretransmitted with a transmitting interval, transmitting intervals of theplurality of groups of packets differing from each other; determining alocation of a usable bandwidth in relation to a first bandwidth range inresponse to the first transmission, based on a result packet that istransmitted from the other communication device, the first bandwidthrange being a range within which bandwidths are measured, the usablebandwidth being one of the bandwidths that can be used in the network,and the result packet containing information that pertains to arelationship between the transmitting interval and a receiving intervalat which the plurality of groups of packets are received by the othercommunication device; resetting the first bandwidth range to a secondbandwidth range in accordance with the determining of the location ofthe usable bandwidth in relation to the first bandwidth range, thesecond bandwidth range being a range within which the bandwidths are tobe measured and in which at least one of an upper limit and a lowerlimit is different from the corresponding limit in the first bandwidthrange; selecting a bandwidth from among a plurality of bandwidths thathave been selected from within the second bandwidth range and based onthe setting of the second bandwidth range, the bandwidth being used whena group of packets is transmitted to the other communication device, inorder to determine whether the usable bandwidth is located within thesecond bandwidth range that has been set; and performing a secondtransmission of the group of packets to the other communication deviceusing the selected bandwidth.